连接管理_rf6hhz1b05kh9tlv

    397
    最后修改于

    建立三报文握手,释放四报文握手
    TCP 连接三个阶段,连接建立,数据传送,连接释放

    连接建立

    建立连接前服务端创建传输控制块 TCB,进入监听状态。

    • 客户端创建 TCB,发送 SYN 报文
      • SYN=1,sequence=x
    • 服务端同意建立连接,发送 SYN 报文
      • SYN=1,ACK=1,sequence=y,ack=x+1
    • 客户端返回 ACK 报文,可以携带数据
      • ACK=1,sequence=x+1,ack=y+1

    SYN 报文不携带数据但消耗 1 个序号

    连接释放

    释放时双方均处于 ESTABLISHED 状态。

    • 客户端发送连接释放报文
      • FIN=1,seq=u
    • 服务端立即发送确认
      • ACK=1,seq=v,ack=u+1
    • 此时 A,没有数据需要发送,TCP 半关闭
    • 服务端可以进行最后的数据传送
      • FIN=1,ACK=1,seq=w,ack=u+1
    • 客户端返回最后的释放报文
      • ACK=1,seq=u+1,ack=v+1
    • 此时客户端仍需等待 2MSL 才能进入 closed 状态。
      • 防止确认丢失服务端重传
      • 保证网络中的该连接的报文段消失

    • 🥳0
    • 👍0
    • 💩0
    • 🤩0